i2001-04-24 Alexander Larsson <alexl@redhat.com>
authorAlexander Larsson <alexl@src.gnome.org>
Tue, 24 Apr 2001 14:58:33 +0000 (14:58 +0000)
committerAlexander Larsson <alexl@src.gnome.org>
Tue, 24 Apr 2001 14:58:33 +0000 (14:58 +0000)
* gtk/gtkclist.[ch]:
* gtk/gtkctree.c:
When there is a row highlighted for D'n'D it must alse
be painted hightlighted on exposes. Otherwise exposes from
the icon being dragged will mess up the hightlight.

* gtk/gtkfontsel.c:
Don't recenter selected font when exposing the font family
clist. This means you can now actually scroll the font family
list.

* gtk/gtknotebook.c:
Fix focus movement on scrolling tabs that are placed on the left
and right.

gtk/gtkclist.c
gtk/gtkclist.h
gtk/gtkctree.c
gtk/gtkfontsel.c
gtk/gtknotebook.c

index f0a88877dcb2f377d32e432d4c4dbb2b41e4bdeb..a32d4a4524374e85b98ba5d762e5024ef83688d9 100644 (file)
@@ -990,6 +990,8 @@ gtk_clist_init (GtkCList *clist)
   clist->compare = default_compare;
   clist->sort_type = GTK_SORT_ASCENDING;
   clist->sort_column = 0;
+
+  clist->drag_highlight_row = -1;
 }
 
 /* Constructor */
@@ -4799,6 +4801,13 @@ gtk_clist_expose (GtkWidget      *widget,
       /* exposure events on the list */
       if (event->window == clist->clist_window)
        draw_rows (clist, &event->area);
+
+      if (event->window == clist->clist_window &&
+         clist->drag_highlight_row >= 0)
+       GTK_CLIST_GET_CLASS (clist)->draw_drag_highlight
+         (clist, g_list_nth (clist->row_list,
+                             clist->drag_highlight_row)->data,
+          clist->drag_highlight_row, clist->drag_highlight_pos);
     }
 
   return FALSE;
@@ -7483,6 +7492,7 @@ gtk_clist_drag_leave (GtkWidget      *widget,
                    (clist,
                     g_list_nth (clist->row_list, dest_info->cell.row)->data,
                     dest_info->cell.row, dest_info->insert_pos);
+                 clist->drag_highlight_row = -1;
                  break;
                }
              list = list->next;
@@ -7573,6 +7583,9 @@ gtk_clist_drag_motion (GtkWidget      *widget,
                (clist, g_list_nth (clist->row_list,
                                    dest_info->cell.row)->data,
                 dest_info->cell.row, dest_info->insert_pos);
+             
+             clist->drag_highlight_row = dest_info->cell.row;
+             clist->drag_highlight_pos = dest_info->insert_pos;
 
              gdk_drag_status (context, context->suggested_action, time);
            }
index 568c31f32fe8671d76ab7f91490e925372697651..ae7cbaed6b9ba02fef7c9a001e1b2c847f647b91 100644 (file)
@@ -239,6 +239,9 @@ struct _GtkCList
   GtkSortType sort_type;
   GtkCListCompareFunc compare;
   gint sort_column;
+
+  gint drag_highlight_row;
+  GtkCListDragPos drag_highlight_pos;
 };
 
 struct _GtkCListClass
index 2ea6d473c7036abdb87a70465daa76b7a1e2fa65..b1f932a93d62a8b3ecdfebdfe54951e737d337e8 100644 (file)
@@ -6084,6 +6084,9 @@ gtk_ctree_drag_motion (GtkWidget      *widget,
                 g_list_nth (clist->row_list, dest_info->cell.row)->data,
                 dest_info->cell.row, dest_info->insert_pos);
 
+             clist->drag_highlight_row = dest_info->cell.row;
+             clist->drag_highlight_pos = dest_info->insert_pos;
+
              gdk_drag_status (context, context->suggested_action, time);
            }
          return TRUE;
index 86e6ea4f003fbdc3284ff8db39859df79482f438..62e654d7bc4dd81ce0aac5002b2072a3c9a55589 100644 (file)
@@ -288,9 +288,6 @@ gtk_font_selection_init(GtkFontSelection *fontsel)
   gtk_signal_connect (GTK_OBJECT (fontsel->font_clist), "key_press_event",
                      GTK_SIGNAL_FUNC(gtk_font_selection_on_clist_key_press),
                      fontsel);
-  gtk_signal_connect_after (GTK_OBJECT (fontsel->font_clist), "expose_event",
-                           GTK_SIGNAL_FUNC(gtk_font_selection_expose_list),
-                           fontsel);
   
   gtk_font_selection_show_available_styles (fontsel);
   
index 96b3bd5969aed5c1d76698804782db23edae0119..b86fcdbb8b9eab70036b318478b72751f4ad12d3 100644 (file)
@@ -1005,12 +1005,19 @@ gtk_notebook_arrow_button_press (GtkNotebook    *notebook,
   
   if (event->button == 1)
     {
+      GtkDirectionType dir;
       if (!notebook->focus_tab ||
          gtk_notebook_search_page (notebook, notebook->focus_tab,
                                    arrow == GTK_ARROW_LEFT ? STEP_PREV : STEP_NEXT,
                                    TRUE))
-       gtk_container_focus (GTK_CONTAINER (notebook),
-                            arrow == GTK_ARROW_LEFT ? GTK_DIR_LEFT : GTK_DIR_RIGHT);
+       {
+         if (notebook->tab_pos == GTK_POS_LEFT ||
+             notebook->tab_pos == GTK_POS_RIGHT)
+           dir = (arrow == GTK_ARROW_LEFT) ? GTK_DIR_UP : GTK_DIR_DOWN;
+         else
+           dir = (arrow == GTK_ARROW_LEFT) ? GTK_DIR_LEFT : GTK_DIR_RIGHT;
+         gtk_container_focus (GTK_CONTAINER (notebook), dir);
+       }
       
       if (!notebook->timer)
        {